home *** CD-ROM | disk | FTP | other *** search
- TITLE MESSAGES
-
-
-
- ;Routines
-
- public ERROR_TABLE,ERROR_ROUTINE,NOT_IN_TABLE,N1
-
- ;Variables
-
- public INVALID_DRIVE_SPECIFIER,FILE_NOT_FOUND,NOT_ABLE_TO_MOVE
- public PARSE_ERROR,INVALID_PATH,FILE_ALREADY_HERE,NO_PARAMETERS
- public INSUFFICIENT_SPACE,OPEN_ERROR,CREATE_ERROR,ACCESS_DENIED
- public DATE_TIME_ERROR,CLOSE_ERROR,DELETE_ERROR,TO_BIG
-
- CR EQU 0DH
- LF EQU 0AH
- DISPLAY_STRING EQU 9
-
- G GROUP CODE
- CODE SEGMENT PUBLIC
- ASSUME CS:G, DS:G, ES:G, SS:G
-
- INVALID_DRIVE_SPECIFIER DB "Invalid drive specifier",CR,LF,"$"
- FILE_NOT_FOUND DB "File not found",CR,LF,"$"
- NOT_ABLE_TO_MOVE DB "Can not move the file",CR,LF,"$"
- PARSE_ERROR DB "Parsing error",CR,LF,"$"
- INVALID_PATH DB "Invalid path",CR,LF,"$"
- FILE_ALREADY_HERE DB "File already exists",CR,LF,"$"
- NO_PARAMETERS DB "no parameters",CR,LF,"$"
- INSUFFICIENT_SPACE DB "Insufficient disk space",CR,LF,"$"
- OPEN_ERROR DB "Open error.",CR,LF,"$"
- CREATE_ERROR DB "Create error",CR,LF,"$"
- ACCESS_DENIED DB "Access denied",CR,LF,"$"
- DATE_TIME_ERROR DB "Date time error",CR,LF,"$"
- CLOSE_ERROR DB "Close error",CR,LF,"$"
- DELETE_ERROR DB "Delete error",CR,LF,"$"
- TO_BIG DB "File name to big",cr,lf,"$"
-
- ERROR_TABLE:
- DW INVALID_DRIVE_SPECIFIER ; 1
- DW INVALID_PATH ; 2
- DW NOT_ABLE_TO_MOVE ; 3
- DW PARSE_ERROR ; 4
- DW ACCESS_DENIED ; 5
- DW FILE_ALREADY_HERE ; 6
- DW NO_PARAMETERS ; 7
- DW INSUFFICIENT_SPACE ; 8
- DW OPEN_ERROR ; 9
- DW CREATE_ERROR ; 10
- DW FILE_NOT_FOUND ; 11
- DW DATE_TIME_ERROR ; 12
- DW CLOSE_ERROR ; 13
- DW DELETE_ERROR ; 14
- DW TO_BIG ; 15
-
- LAST_ERROR EQU 15
-
- ;--------------------------------------------------------------------
-
- ERROR_ROUTINE PROC
- ; Given the error code in al, print its error message.
- ; call: al = error code or sometimes ah = error code
- ; error_table -> the error table
-
- CMP AL, 1
- JB NOT_IN_TABLE
- CMP AL, LAST_ERROR
- JA NOT_IN_TABLE
-
- XOR AH, AH
- DEC AL
- SHL AX, 1
- MOV BX, OFFSET G:ERROR_TABLE
- ADD BX, AX
-
- MOV DX, [BX]
- MOV AH, DISPLAY_STRING
- INT 21H
-
- RET
-
- NOT_IN_TABLE:
- CMP AL, 0FFH
- JZ N1
-
- CMP AH, 0FFH
- JZ N1
-
- RET
-
- N1:
- MOV AL, 1
- JMP ERROR_ROUTINE
- ERROR_ROUTINE ENDP
-
- ;--------------------------------------------------------------------
-
- CODE ENDS
- END
-